package com.loong.system.common.backend.param;

import com.loong.common.validator.group.CommonInsert;
import com.loong.common.validator.group.CommonUpdate;
import lombok.*;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Builder
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class SystemLetterParam {

    /**
     * 主键
     */
    @NotNull(groups = {CommonUpdate.class},message = "更新时id不能为空")
    private Long id;

    /**
     * 用户id
     */
    @NotNull(message = "新增时用户id不能为空",groups = {CommonInsert.class})
    private Long userId;

    /**
     * 用户类型
     */
    @NotNull(message = "新增时用户类型不能为空",groups = {CommonInsert.class})
    private Integer userType;

    /**
     * 发送时间
     */
    private Date sendTime;

    /**
     * 接收时间
     */
    private Date receiveTime;

    /**
     * 读取时间
     */
    private Date readTime;

    /**
     * 是否已读
     */
    private Boolean isRead;

    /**
     * 标签
     */
    private String tag;

    /**
     * 信件类型：0表示回复反馈，1表示系统发送的站内信
     */
    private Integer letterType;

    /**
     * 关联id：系统发送站内信id或者用户反馈id
     */
    @NotNull(message = "新增时关联id不能为空",groups = {CommonInsert.class})
    private Long linkId;

    /**
     * 发送人
     */
    private String sender;

    /**
     * 发送人id
     */
    private Long senderId;

    /**
     * 标题
     */
    @NotBlank(message = "新增时标题不能为空",groups = {CommonInsert.class})
    private String title;

    /**
     * 内容
     */
    @NotBlank(message = "新增时内容不能为空",groups = {CommonInsert.class})
    private String content;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date lastUpdateTime;
}